package regexpintr;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @description:
 * @author: jhy
 * @time: 2021/5/22 14:38
 */
public class RegexpDemo1 {

    public static void main(String[] args) {


        String content = "1995年，互联网的蓬勃发展给了Oak机会。业界为了使死板、单调的静态网页能够“灵活”起来" +
                "，急需一种软件技术来开发一种程序，这种程序可以通过网络传播并且能够跨平台运行。于是，世界各大" +
                "IT企业为此纷纷投入了大量的人力、物力和财力。这个时候，Sun公司想起了那个被搁置起来很久的Oak，" +
                "并且重新审视了那个用软件编写的试验平台，由于它是按照嵌入式系统硬件平台体系结构进行编写的，" +
                "所以非常小，特别适用于网络上的传输系统，而Oak也是一种精简的语言，程序非常小，适合在网络上传输。" +
                "Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet（Applet是一种将小程序嵌入" +
                "到网页中进行执行的技术），并将Oak更名为Java（在申请注册商标时，发现Oak已经被人使用了，再想了一系" +
                "列名字之后，最终，使用了提议者在喝一杯Java咖啡时无意提到的Java词语）。5月23日，Sun公司在Sun world" +
                "会议上正式发布Java和HotJava浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微" +
                "软等各大公司都纷纷停止了自己的相关开发项目，竞相购买了Java使用许可证，并为自己的产品开发了相应的Ja" +
                "va平台。";

        //传统方式：将字符串转为字符数组，遍历字符数组，进行判断并拼接

        //正则表达式方式
        //(1)创建一个正则表达式对象Pattern，里面传入字符串匹配逻辑
        //Pattern pattern = Pattern.compile("[a-zA-Z]+"); //匹配但是
        //Pattern pattern = Pattern.compile("[0-9]+"); //匹配数字
        Pattern pattern = Pattern.compile("([0-9]+)|([a-zA-Z]+)"); //匹配数字或者英文单词

        //2.创建一个匹配器对象Matcher
        //过程：matcher匹配器按照pattern模式，到content中进行匹配
        Matcher matcher = pattern.matcher(content);

        //开始循环匹配，匹配就返回true，否则返回false
        while (matcher.find()){
            //System.out.println("找到英文单词："+matcher.group(0));
            //System.out.println("数字："+matcher.group(0));
            System.out.println("数字或英文单词："+matcher.group(0));
        }

    }
}
